let app = getApp()
const observer = require("../../common/lib/observer").observer
let store = require("settings_store").store
let ble = require("../../util/ble")

Page(observer({
	props: {
		common_store: app.data.common_store,
		store: new store(),
	},
	onShow() {
		// 从缓存中读取值
		this.get_syn_settings()
	},
	get_syn_settings() {
		// 读取缓冲中的设置参数
		let s = wx.getStorageSync("settings")
		// 如果缓冲中没有，则设置为默认值
		if(s == "") {
			this.set_settings_to_default("init")
		}
		else {
			this.props.common_store.settings = s
		}
		
		if(!ble.syn_settings()) {
			app.show_notice("未连接练习器，无法同步设置")
		}
		
	},
	go_back() {
		app.go_back()
	},
	// 恢复默认设置
	set_settings_to_default(op_type = "") {
		if(op_type != "init") {
			// 保存呼号，不重置
			this.props.common_store.settings_default.callsign = this.props.common_store.settings.callsign
		}
		// 存储在本地
		wx.setStorage({
			key: "settings",
			data: this.props.common_store.settings_default,
			success(res) {
				ble.syn_settings()
				// 是否显示“已恢复默认设置”的提示
				if(op_type != "init") {
					app.show_notice("已恢复默认设置")
				}
			},
			fail(res) {
				app.show_notice("失败了，而且不知道为啥失败")
			}
		})
	},
	// 更新设置
	update_settings(e) {
		let item = ""
		let value = ""
		item = e.target.dataset.item
		value = e.detail.value
		
		if(item == "key_type") {
			if(value == "true") {
				this.props.common_store.settings.key_type = true
			}
			else if(value == "false") {
				this.props.common_store.settings.key_type = false
			}
		}
		else {
			this.props.common_store.settings[item] = value
		}
		if(item != "callsign" && item != "play_my_code") {		
			ble.send("set:" + item + ":" + value).then(() => {
				// console.log(res)
			}).catch(() => {
				// console.log("error")
			})
		}

		// 存储在本地
		wx.setStorage({
			key: "settings",
			data: this.props.common_store.settings,
			success(res) {
				// console.log(res)
				// console.log(wx.getStorageSync("settings"))
			},
			fail(res) {
				// console.log(res)
			}
		})
	}
}))